//
// Created by Administrator on 2021/11/13.
//
#include <cstdio>
#include <cstdlib>

#define MaxSize 100//定义最大个数
#define ElemType int

struct TreeNode {
    ElemType value;//结点中的数据元素
    bool isEmpty;//结点是否为空
};

TreeNode t[MaxSize];

void InitTree(TreeNode *&t) {
    for (int i = 0; i < MaxSize; i++) {
        t[i].isEmpty = true;//初始化时所有结点标记为空
    }
}
/*可以让第一个位置空缺,保证数组下标和结点编号一致
 * 几个重要常考的基本操作:
 * i的左孩子--2i
 * i的右孩子--2i+1
 * i的父节点--[i/2]
 * i所在的层次--[log(n + 1)]或[log2(n)]+1*/

/*若完全二叉树中共有n个结点，则判断
 * i是否 有左孩子?--2i ≤ n?
 * i是否 有右孩子?--2i+1 ≤ n?
 * i是否 是叶子/分支结点?--i > [n/2] ?*/

/*最坏情况:
 * 高度为h且只有h个结点的单支树（所有结点只有右孩子)，也至少需要(2^h-1)个存储单元
 * 结论:
 * 二叉树的顺序存储结构，只适合存储完全二叉树*/
